The present invention relates to the performance monitoring of electronic devices and particularly, though not exclusively, to remotely monitoring and/or debugging of software operations in devices connected to the Internet/World Wide Web.
As described in an article entitled xe2x80x9cDawn of the Internet Appliancexe2x80x9d by George Lawton in Computer, vol. 30, no. 10, pp16-18, October 1997, Internet technologies have had an enormous impact in terms of the way large numbers of disparate devices are now able to transmit important instructions and information via the Internet. With the standardization of Internet protocols and competition among Internet service providers (ISP""s), the price of Internet connectivity has sharply fallen and manufacturers are now finding it economical to incorporate it into a wide variety of devices, including factory machinery, VCR""s and hand-held appliances such as PDA""s (personal digital assistants). Moreover, because web browsers are so common, developers can provide sophisticated low cost interfaces by supporting web servers in their products.
At the implementation level, the web server itself may be a very small and simple piece of code which controls the flow of information between the appliance (the device featuring the server) and a remote third-party. Within the appliance, multiple software processes may be running to implement a variety of appliance specific tasks. The conventional method for linking these software processes with the server software is to use a number of functions within each process which are called by the server. When the server receives an information request from a querying third party, it analyses the request to identify the software module and function that should be called and then calls the function. This function, once called, returns accumulated information to the web server which in turn sends it over the Internet to the querying third party.
There are a number of problems with this approach, however. Firstly, there are a lot of static functions that the web server software calls and the other appliance software must provide. This means that to add a new information retrieval function to the system, the function must be written and the server altered to directly call it. This involves a lot of work and makes the resulting software difficult to modify or maintain. Secondly, there is no simple way to dynamically enable or disable information retrieval functions while the appliance is operating. As the information being retrieved can vary from debugging information through to usage statistics, flexibility of information filtering is a desirable feature.
It is therefore an object of the present invention to provide a diagnostic or monitoring method, and apparatus embodying the same, having improved flexibility in the handling and modification of appliance functions.
In accordance with a first aspect of the present invention there is provided a method for monitoring software modules in a device hosting said modules together with a remotely accessible server and a plurality of stored data-gathering functions, wherein the server, on detecting receipt of a message from a remote user identifying a particular module and a function, causes that function to be applied to the module, obtains the data gathered by said function, and passes the gathered data to the remote user;
characterized in that each data gathering function is assigned to a particular module or group of modules, each has a respective name stored in a table of functions in the device, and the obtaining of data by the remote user is directed by the sending of the respective name to the server, and the triggering of the associated function through the table.
Also in accordance with the present invention there is provided a network addressable apparatus hosting a plurality of operational software modules, the apparatus comprising: a data processor coupled with first storage means, the processor running said software modules from storage within the first storage means; a network interface coupled with said processor; a web server hosted by said processor and handling network communications of the apparatus; wherein the first storage means further stores a plurality of data-gathering functions, wherein the server is arranged to detect receipt of a message from a remote user identifying a particular software module and data-gathering function, to cause that function to be applied to the module, obtain the data gathered by said function, and pass the gathered data via the network interface to the remote user;
characterized in that the apparatus further comprises second storage means coupled with the data processor and web server, with each data gathering function assigned to a particular module or group of modules and each having a respective name stored in a table of function identifiers in said second storage means, wherein the application of a data gathering function is triggered on determination by the web server that the name for that function has been received via the network and appears in the table of function identifiers.
By use of the table, a highly flexible technique is provided for attaching functions within appliance processes. Instead of having a myriad of inflexible static functional links between the server and each software process within the appliance, an apparatus having the web server arrangement according to the present invention supports a registration scheme whereby software processes may, during initialisation or at other times, register additional or modified data gathering functions without having to rewrite or reconfigure the web server.
Further features and advantages of the present invention are defined in the attached claims to which reference should now be made, and will become apparent from reading the following description of systems embodying the present invention.